package com.bjsxt;
/**判断当前线程是否存活
 * isAlive()方法：判断当前线程是否处于活动状态
 *活动状态是指线程已经启动且尚未终止，线程处于正在运行或准备开始运行的状态
 * ，就认为线程是存活*/

class Alive implements Runnable{
    @Override
    public void run() {
        //判断线程是否存活
        System.out.println(Thread.currentThread().isAlive()+"2");
        //子线程处于阻塞状态和休眠状态，都 是存活的
       /* try {
            Thread.sleep(20000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }*/
    }
}
public class AlvieThread {
    public static void main(String[] args) {
        //实例化
        Thread t = new Thread(new Alive());
        //没有启动时看下线程是否存活
        System.out.println(t.isAlive()+"1");//false
        //启动线程
        t.start();
        System.out.println(t.isAlive()+"3");//true
        //主线程休眼一秒,子线程处于死亡状态，因为线程停止了运行
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        //主线程休眠，子线程没有休眠，返回false,
        //主线程休眠，子线程也休眠，返回true
        System.out.println(t.isAlive()+"4");
    }
}
